﻿
<div class="layui-card">
    <div class="layui-card-body">
        <form class="layui-form" action="">
            <div class="layui-form-item">
                <div class="layui-form-item layui-inline">
                    <label class="layui-form-label">权限名</label>
                    <div class="layui-input-inline">
                        <input type="text" name="name" placeholder="" class="layui-input">
                    </div>
                </div>

                <div class="layui-form-item layui-inline">
                    <button class="pear-btn pear-btn-md pear-btn-primary" lay-submit lay-filter="module-query">
                        <i class="layui-icon layui-icon-search"></i>
                        查询
                    </button>
                    <button type="reset" class="pear-btn pear-btn-md">
                        <i class="layui-icon layui-icon-refresh"></i>
                        重置
                    </button>
                </div>
            </div>
        </form>
    </div>
</div>
<div class="layui-card">
    <div class="layui-card-body">
        <table id="module-table" lay-filter="module-table"></table>
    </div>
</div>

<script type="text/html" id="module-toolbar">
    <button class="pear-btn pear-btn-primary pear-btn-md" lay-event="add">
        <i class="layui-icon layui-icon-add-1"></i>
        新增
    </button>
    <button class="pear-btn pear-btn-danger pear-btn-md" lay-event="batchRemove">
        <i class="layui-icon layui-icon-delete"></i>
        删除
    </button>
</script>

<script type="text/html" id="module-bar">
    <button class="pear-btn pear-btn-primary pear-btn-sm" lay-event="edit" title="编辑"><i class="layui-icon layui-icon-edit"></i></button>
    <button class="pear-btn pear-btn-danger pear-btn-sm" lay-event="remove" title="删除"><i class="layui-icon layui-icon-delete"></i></button>
</script>

<script type="text/html" id="module-type">
    {{#if (d.moduleType == 1) { }}
    <span>菜单</span>
    {{# }else if(d.moduleType == 2){ }}
    <span>按钮</span>
    {{# } }}
</script>
@section script{
    <script>
        layui.use(['table', 'form', 'jquery', 'common'], function () {
            let table = layui.table;
            let form = layui.form;
            let $ = layui.jquery;
            let common = layui.common;

            let MODULE_PATH = "module/";

            let cols = [
                [{
                    type: 'checkbox'
                },
                {
                    title: '权限名',
                    field: 'name',
                    align: 'center',
                    width: 150
                },
                {
                    title: '标识',
                    field: 'pageKey',
                    align: 'center'
                },
                {
                    title: 'Url',
                    field: 'pageUrl',
                    align: 'center'
                },
                {
                    title: '类型',
                    templet: '#module-type' ,
                    align: 'center'
                },
                {
                    title: '操作',
                    toolbar: '#module-bar',
                    align: 'center',
                    width: 150
                }
                ]
            ]

            table.render({
                elem: '#module-table',
                url: '/module',
                page: true,
                method: "post",
                cols: cols,
                skin: 'line',
                toolbar: '#module-toolbar',
                defaultToolbar: [{
                    title: '刷新',
                    layEvent: 'refresh',
                    icon: 'layui-icon-refresh',
                }, 'filter', 'print', 'exports']
            });

            table.on('tool(module-table)', function (obj) {
                if (obj.event === 'remove') {
                    window.remove(obj);
                } else if (obj.event === 'edit') {
                    window.edit(obj);
                } else if (obj.event === "module") {
                    window.module(obj);
                }
            });

            table.on('toolbar(module-table)', function (obj) {
                if (obj.event === 'add') {
                    window.add();
                } else if (obj.event === 'refresh') {
                    window.refresh();
                } else if (obj.event === 'batchRemove') {
                    window.batchRemove(obj);
                }
            });

            form.on('submit(module-query)', function (data) {
                table.reload('module-table', {
                    where: data.field
                })
                return false;
            });


            window.add = function () {
                layer.open({
                    type: 2,
                    title: '新增',
                    shade: 0.1,
                    area: [common.isModile() ? '100%' : '500px', common.isModile() ? '100%' : '550px'],
                    content: MODULE_PATH + 'add'
                });
            }

            window.edit = function (obj) {
                layer.open({
                    type: 2,
                    title: '修改',
                    shade: 0.1,
                    area: [common.isModile() ? '100%' : '500px', common.isModile() ? '100%' : '550px'],
                    content: MODULE_PATH + 'edit/' + obj.data['moduleID']
                });
            }

            window.remove = function (obj) {
                layer.confirm('确定要删除该权限', {
                    icon: 3,
                    title: '提示'
                }, function (index) {
                    layer.close(index);
                    let loading = layer.load();
                    $.ajax({
                        url: MODULE_PATH + "del/" + obj.data['moduleID'],
                        dataType: 'json',
                        type: 'post',
                        success: function (result) {
                            layer.close(loading);
                            if (result.success) {
                                layer.msg(result.msg, {
                                    icon: 1,
                                    time: 1000
                                }, function () {
                                    obj.del();
                                });
                            } else {
                                layer.msg(result.msg, {
                                    icon: 2,
                                    time: 1000
                                });
                            }
                        }
                    })
                });
            }

            window.batchRemove = function (obj) {

                var checkIds = common.checkField(obj, 'moduleID');

                if (checkIds === "") {
                    layer.msg("未选中数据", {
                        icon: 3,
                        time: 1000
                    });
                    return false;
                }

                layer.confirm('确定要删除这些权限？', {
                    icon: 3,
                    title: '提示'
                }, function (index) {
                    layer.close(index);
                    let loading = layer.load();
                    $.ajax({
                        url: MODULE_PATH + "batchRemove/" + ids,
                        dataType: 'json',
                        type: 'delete',
                        success: function (result) {
                            layer.close(loading);
                            if (result.success) {
                                layer.msg(result.msg, {
                                    icon: 1,
                                    time: 1000
                                }, function () {
                                    table.reload('module-table');
                                });
                            } else {
                                layer.msg(result.msg, {
                                    icon: 2,
                                    time: 1000
                                });
                            }
                        }
                    })
                });
            }

            window.refresh = function (param) {
                table.reload('module-table');
            }
        })</script>
}